package com.ybb.production.service;

import com.ybb.production.domain.GarmentProductionBianfei;
import com.ybb.production.domain.GarmentProductionCuttingBedInfo;
import com.ybb.production.dto.GarmentProductionCuttindBedQueryDTO;
import com.ybb.production.dto.GarmentProductionCuttingBedDTO;
import com.ybb.production.dto.GarmentProductionCuttingBedUpdateDTO;
import com.ybb.production.responce.GarmentBianfeiByBundleResp;
import com.ybb.production.responce.GarmentProductionCuttingBedByBoltResp;
import com.ybb.production.responce.GarmentProductionCuttingBedPageResp;
import com.ybb.production.responce.GarmentProductionProgressByBedNoResp;

import javax.validation.Valid;
import java.util.List;

/**
 * 裁单信息Service接口
 *
 * @author ruoyi
 * @date 2023-09-09
 */
public interface IGarmentProductionCuttingBedInfoService {
    /**
     * 查询裁单信息
     *
     * @param id 裁单信息主键
     * @return 裁单信息
     */
    public GarmentBianfeiByBundleResp selectGarmentProductionCuttingBedInfoById(Long id);

    /**
     * 查询裁单信息列表
     *
     * @param garmentProductionCuttingBedInfo 裁单信息
     * @return 裁单信息集合
     */
    public List<GarmentProductionCuttingBedPageResp> selectGarmentProductionCuttingBedInfoList(GarmentProductionCuttindBedQueryDTO garmentProductionCuttingBedInfo);

    /**
     * 新增裁单信息
     *
     * @param garmentProductionCuttingBedInfo 裁单信息
     * @return 结果
     */
    public GarmentProductionCuttingBedInfo insertGarmentProductionCuttingBedInfo(@Valid GarmentProductionCuttingBedDTO garmentProductionCuttingBedInfo);

    /**
     * 修改裁单信息
     *
     * @param garmentProductionCuttingBedInfo 裁单信息
     * @return 结果
     */
    public int updateGarmentProductionCuttingBedInfo(GarmentProductionCuttingBedUpdateDTO garmentProductionCuttingBedInfo);

    /**
     * 批量删除裁单信息
     *
     * @param ids 需要删除的裁单信息主键集合
     * @return 结果
     */
    public int deleteGarmentProductionCuttingBedInfoByIds(Long[] ids);

    /**
     * 删除裁单信息信息
     *
     * @param id 裁单信息主键
     * @return 结果
     */
    public int deleteGarmentProductionCuttingBedInfoById(Long id);

    GarmentProductionCuttingBedPageResp qryCuttingBedStatistics();

    GarmentProductionCuttingBedPageResp getCuttingBedStatisticsResult(Long cuttingBedId);

    List<GarmentProductionCuttingBedByBoltResp> garmentProductionCuttingBedByBoltResp(Long cuttingBedId);

    int editQuery(GarmentProductionBianfei garmentProductionBianfei);

    List<GarmentProductionProgressByBedNoResp.CuttingBedProcess> getCuttingBedByProcess(Long cuttingBedId);
}
